# 函数的定义 函数是组织好的，可重复使用 用来实现相关功能的代码段

# def my_abs(num):
#     """
#     该函数可以返回一个数字的绝对值
#     :param num: 传入的数字，必须是个数字，而且必传
#     :return: 返回该数字的绝对值
#     """
#     if num < 0:
#         return -num
#     else:
#         return num
#
#
# def new_abs(num: int) -> int:
#     """
#     该函数可以返回一个数字的绝对值
#     :param num: 传入的数字，必须是个数字，而且必传
#     :return: 返回该数字的绝对值
#     """
#     if num < 0:
#         return -num
#     else:
#         return num
#
#
# print(my_abs(-9))
# print(new_abs(90))
#
#
# # 传参
# def test1(x, y):
#     return x + y
#
#
# result = test1(10, 20)
# print(result)
#
#
# def test2(*args, init_sum=10):
#     print(type(args))
#     if args:
#         for i in args:
#             init_sum += i
#     return init_sum
#
#
# print(test2(1, 2, 3))
#
#
# def tset4(init_sum=10, **kwargs):
#     print(type(kwargs))
#     for k, v in kwargs.items():
#         print(f'参数的名字：{k},参数的值：{v}')
#     return init_sum + sum(kwargs.values())
#
#
# print(tset4(x=10, y=20, z=3))


# 函数的返回值 return 语句用于返回函数的值，并且退出函数，选择性的使用 return语句
# def test(x,y):
#     x2 = x ** 2
#     y2 = y ** 2
#     return x2,y2
#
# result = test(10,11)
# print(result[1],type(result))

# 局部变量 全局变量
def test2():
    global a
    a = 30
    print(a)


test2()
print(a)
